package com.hualan.util;

import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

import java.util.Scanner;

public class Utils {
    //输入实例
    static Scanner sc = new Scanner(System.in);

    /**
     * 根据正则，获得满足条件的字符串
     * @param regex
     * @return 结果
     */
    public static String getStringByRegex(String regex){
        while (true){
            String str = sc.nextLine();
            if(str.matches(regex)){
                return str;
            }
            //数据不合法
            System.out.print("输入错误，重来：");
        }
    }

    /**
     * 获得用户名，必须是汉字
     * @return 汉字名字
     */
    public static String getName() {
        return getStringByRegex("[\\u4e00-\\u9fa5]{1,10}").toUpperCase();
//        return getStringByRegex(".{1,}");
    }
    /**
     * 获得用户名，必须是汉字
     * @return 汉字名字
     */
    public static String getPhone() {
//        return getStringByRegex("[\\u4e00-\\u9fa5]{1,10}").toUpperCase();
        return getStringByRegex("(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\\d{8}").toUpperCase();
    }

    public static Character getChar0(String name) {
        Pinyin4j p = new Pinyin4j();
        try {
            return p.toPinYinUppercase(name).charAt(0);
        } catch (BadHanyuPinyinOutputFormatCombination e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 获得yn,自动转为大写
     * @return 大写字母Y-N
     */
    public static String getYn() {
        return getStringByRegex("[YyNn]").toUpperCase();
    }
}
